package com.heima.tess4j;

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.springframework.core.io.ClassPathResource;

import java.io.File;
import java.io.IOException;

public class Application {

    /**
     * 识别图片中的文字
     * @param args
     */
    public static void main(String[] args) throws TesseractException {

        //创建实例
        ITesseract tesseract = new Tesseract();

        //设置字体库路径G:\heimatoutiaoxuniji\tessdata
        tesseract.setDatapath("G:\\heimatoutiaoxuniji\\tessdata");//classpath:/tessdata
//不要直接使用 classpath: 前缀，因为 setDatapath(String) 接受的是文件系统路径，而不是类路径 URI。
// Tesseract 需要在文件系统上找到相应的文件，因此你必须将 tessdata 转换为文件系统路径。
//        tesseract.setDatapath("classpath:\\tessdata");
        // 使用 ClassPathResource 获取 tessdata 的绝对路径
//        String tessdataPath = null;
//        try {
//            tessdataPath = new ClassPathResource("tessdata").getFile().getAbsolutePath();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        tesseract.setDatapath(tessdataPath);

        //设置语言 -->简体中文
        tesseract.setLanguage("chi_sim");

        //待识别图片，是png不行还是截图不行？？？？
        File file = new File("G:\\heimatoutiaoxuniji\\111.jpg");

        //识别图片
        String result = tesseract.doOCR(file);

        System.out.println("识别的结果为："+result);
        //去掉回车和tab键，替换成"-"
        System.out.println("识别的结果为："+result.replaceAll("\\r|\\n","-"));

    }
}
